
  /*global $ returnCitySN require ClipboardJS wx err process*/
import { getUA } from "@/service/util.helper";

var wxConfig = {
    data() {
        return {
            weixin : getUA().weixin
        }
    },
    mounted() {
        if(this.weixin){
            this.wxStart();
        }
    },
    methods: {
        wxStart(callback, errN = 2, errUrl = ""){
            //判断 是否进入微信配置错误
            let isErr = false;

            let href = location.origin;
            let url = location.href.split('#')[0];  
            var u = navigator.userAgent;
            var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

            if(sessionStorage.getItem('pathname') && isiOS){
                url = `${sessionStorage.getItem('pathname')}`;
            }
            if(errUrl != ""){
                url = errUrl;
            }

            this.$http.post(`/share/jssdk`, {
                url:url,
                base_app_id: 145,
                base_project_id: 126
            }).then(({ data })=>{
                if(data.status === 1){
                    wx.config({
                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                        appId: data.data.jssdk.appId, // 必填，公众号的唯一标识
                        timestamp: data.data.jssdk.timestamp, // 必填，生成签名的时间戳
                        nonceStr: data.data.jssdk.nonceStr, // 必填，生成签名的随机串
                        signature: data.data.jssdk.signature,// 必填，签名，见附录1
                        jsApiList: [
                            'chooseWXPay'
                        ] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
                    });

                    wx.ready(()=>{
                        if(!isErr) {
                            if(callback){
                                callback('success');
                            }
                        }
                    })

                    wx.error((res)=>{
                        isErr = true;    
                        if(errN > 0) {
                            this.wxStart(callback, --errN, location.href.split('#')[0])
                        }else if(callback){
                            callback('exception', '微信服务异常，请稍后再试~');
                        }   
                    })

                }else {
                    if(callback){
                        callback('err', "接口请求失败");
                    }            
                }
            })
        },
        chooseWXPay(signData) {
            let _this = this
            wx.chooseWXPay({
                timestamp: signData.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
                nonceStr: signData.nonceStr, // 支付签名随机串，不长于 32 位
                package: signData.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
                signType: signData.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
                paySign: signData.paySign, // 支付签名
                success: function (res) {
                    console.log(res);
                    _this.payDone()
                },
                fail: function (error) {
                    console.log('check api fail:', error)
                }
            });
        },
        wxPay() {
            let _this = this
            wx.ready(function () {
                wx.checkJsApi({
                    jsApiList: [
                        'chooseWXPay'
                    ],
                    success: function (res) {
                        console.log(res)
                        _this.goPay(res);
                    }
                });
            });
        }
    },
}
export default wxConfig